package com.sse.conexion;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import com.sse.VO.PoliticaVO;
import com.sse.conexion.ConectorBD;


/**
 * Clase que se encarga de gestionar la persistencia 
 * de la entidad Politicas
 * @author Carlos Ramirez
 *
 */
public class ManejadorPoliticas 
{

	public static ArrayList<PoliticaVO> obtenerPoliticas() throws Exception 
	{
		ArrayList<PoliticaVO> lPoliticas = new  ArrayList<PoliticaVO>();
		
		Connection con 			= ConectorBD.getConexion();
		Statement sqlStatement 	= con.createStatement();
		ResultSet rs  			= null;

		rs 	= sqlStatement.executeQuery("select * from politicas");

		while (rs.next()) {
			
			PoliticaVO voPolitica = new PoliticaVO();
			
			voPolitica.setCodigoInmueble(rs.getInt("codinmueble"));
			voPolitica.setCodigoSensor(rs.getInt("codsensor"));
			voPolitica.setCodigoEvento(rs.getInt("codevento"));
			voPolitica.setCodigoTagId(rs.getInt("codtagid"));
			voPolitica.setDiaSemana(rs.getInt("diasemana"));
			voPolitica.setHoraMin(rs.getInt("horamin"));
			voPolitica.setHoraMax(rs.getInt("horamax"));
			voPolitica.setMinutoMin(rs.getInt("minmin"));
			voPolitica.setMinutoMax(rs.getInt("minmax"));
			voPolitica.setTipoSensor(rs.getInt("tiposensor"));

			lPoliticas.add(voPolitica);
			 
		}
		rs.close();
		sqlStatement.close();
		con.close();
		
		return lPoliticas;
	}
	
	public static int ingresoPolitica(PoliticaVO politica) throws Exception 
	{
		Connection con 			= ConectorBD.getConexion();
		Statement sqlStatement 	= con.createStatement();

		String strSql = "INSERT INTO politicas(" +
				"codinmueble," +
				"codsensor," +
				"codevento," +
				"codtagid," +
				"diasemana," +
				"horamin," +
				"minmin," +
				"horamax," +
				"minmax," +
				"tiposensor" +
				")VALUES ("+
				politica.getCodigoInmueble()+"," +
				politica.getCodigoSensor()+"," +
				politica.getCodigoEvento()+"," +
				politica.getCodigoTagId()+"," +
				politica.getDiaSemana()+"," +
				politica.getHoraMin()+"," +
				politica.getMinutoMin()+"," +
				politica.getHoraMax()+"," +
				politica.getMinutoMax()+"," +
				politica.getTipoSensor()+")";
     
		int resultado = sqlStatement.executeUpdate(strSql);
		
		con.close();
		
		return resultado;
	}
	
	public static void main(String[] args) throws Exception {
		
		
		//ID CASAS
		for (int i =0; i < 50 ; i++)
		{
			//TIPO SENSORES
			for (int Y =0; Y < 50 ; Y++)
			{
				for (int Z =0; Z < 50 ; Z++)
				{
					if (Z==4)
					{
						//TAG ID
						for (int X =0; X < 50 ; X++)
						{
							PoliticaVO voPolitica = new PoliticaVO();
							
							voPolitica.setCodigoInmueble(i);
							voPolitica.setCodigoSensor(Y);
							voPolitica.setTipoSensor(Z);
							voPolitica.setCodigoEvento(1);
							voPolitica.setCodigoTagId(X);
							voPolitica.setDiaSemana(7);
							voPolitica.setHoraMin(8);
							voPolitica.setHoraMax(10);
							voPolitica.setMinutoMin(0);
							voPolitica.setMinutoMin(0);
							
							ManejadorPoliticas.ingresoPolitica(voPolitica);
						}
					}
					else
					{
						PoliticaVO voPolitica = new PoliticaVO();
						
						voPolitica.setCodigoInmueble(i);
						voPolitica.setCodigoSensor(Y);
						voPolitica.setTipoSensor(Z);
						voPolitica.setCodigoEvento(1);
						voPolitica.setCodigoTagId(0);
						voPolitica.setDiaSemana(7);
						voPolitica.setHoraMin(8);
						voPolitica.setHoraMax(10);
						voPolitica.setMinutoMin(0);
						voPolitica.setMinutoMin(0);
						
						ManejadorPoliticas.ingresoPolitica(voPolitica);
					}
					
				}
			}
		}

		
		ArrayList<PoliticaVO> lPoliticas = ManejadorPoliticas.obtenerPoliticas();
		
		System.out.println(lPoliticas.size());
		
		for (PoliticaVO politicaVO : lPoliticas) {
		
			System.out.println("Codigo Evento: " +politicaVO.getCodigoEvento());
		}
	}
	
}
